ABC249 C - Just K
https://atcoder.jp/contests/abc249/tasks/abc249_c
提出
code: python
import itertools
import string
n, k = map(int,input().split())
s = set(input()) for _ in range(n)
# 選んだ文字列に対して論理積をとっていく
# ちょうど 2 個 = 出現回数が2回
alp = list(string.ascii_lowercase)
ans = -1
for i in range(k, len(s)+1):
for j in itertools.combinations(s, i):
tmp = set()
for l in itertools.combinations(j, k):
res = l0
for m in range(1, len(l)):
res = res & lm
for n in res:
tmp.add(n)
if len(tmp) > ans:
ans = len(tmp)
print(ans)
解答
code: python
from collections import Counter
import itertools
n, k = map(int, input().split())
s = input() for _ in range(n)
ans = 0
for p in itertools.product((True, False), repeat=n):
c = Counter()
for i in range(n):
if pi:
for ch in si:
cch += 1
res = 0
for ch, cnt in c.items():
if cnt == k:
res += 1
if ans < res:
ans = res
print(ans)
テーマ
#itertools
メモ
【AtCoder解説】PythonでABC249のA,B,C,D,E,F問題を制する!
提出
code: python
from itertools import product
from collections import Counter
n, k = list(map(int, input().split()))
s = input() for _ in range(n)
ans = -1
for p in product(0, 1, repeat=n):
pick = []
for i, _s in enumerate(s):
if pi:
pick.append(_s)
c = Counter("".join(pick))
tmp = 0
for v in c.values():
if v == k:
tmp += 1
ans = max(ans, tmp)
print(max(0, ans))